package com.aps.apspda.activity;

import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.aps.apspda.R;
import com.aps.apspda.adapter.PopDownAreaListAdapter;
import com.aps.apspda.base.BaseActivity;
import com.aps.apspda.callback.DialogEntityCallBack;
import com.aps.apspda.callback.EntityCallBack;
import com.aps.apspda.dialog.DownloadFragmentDialog;
import com.aps.apspda.dialog.IpSettingVerifyFragmentDialog;
import com.aps.apspda.entity.BaseEntity;
import com.aps.apspda.entity.LoginEntity;
import com.aps.apspda.entity.VersionEntity;
import com.aps.apspda.myview.ClearEditText;
import com.aps.apspda.myview.PasswordEditText;
import com.aps.apspda.utils.AntiShake;
import com.aps.apspda.utils.AppUtils;
import com.aps.apspda.utils.NetUtils;
import com.aps.apspda.utils.StaticMembers;
import com.aps.apspda.utils.ToastUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.google.gson.reflect.TypeToken;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.model.Response;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import butterknife.BindView;
import butterknife.OnClick;

public class LoginActivity extends BaseActivity {

    @BindView(R.id.etMobile)
    ClearEditText etMobile;
    @BindView(R.id.etPassword)
    PasswordEditText etPassword;
    @BindView(R.id.tvArea)
    TextView tvArea;
    @BindView(R.id.ivArrow)
    ImageView ivArrow;
    @BindView(R.id.flArea)
    FrameLayout flArea;
    @BindView(R.id.rlParent)
    RelativeLayout rlParent;
    @BindView(R.id.tvVersion)
    TextView tvVersion;
    private PopupWindow titlePop;
    private View popView;
    private Animation animation, animationDismiss;
    private RecyclerView lvDownList;
    private PopDownAreaListAdapter popDownAreaListAdapter;
    private int type = 0;
    private String TAG_USER_LOGIN = "user_login";
    private DownloadFragmentDialog dialog;

    @Override
    protected int getLayoutResId() {
        return R.layout.activity_login;
    }

    @Override
    protected void initView() {
        popView = getLayoutInflater().inflate(R.layout.popupwindow_down_list_select, null);
        lvDownList = popView.findViewById(R.id.lvDownList);
        lvDownList.setLayoutManager(new LinearLayoutManager(LoginActivity.this));
        lvDownList.setItemAnimator(new DefaultItemAnimator());

        etMobile.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (start == 0 && before == 0 && count > 1) {
//                    etPassword.requestFocus();
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }

    @Override
    protected void initData() {
        setCallback(etMobile);
        AppUtils.deleteLog();
        final List<String> list = new ArrayList<>();
        list.add("FAB-A");
        popDownAreaListAdapter = new PopDownAreaListAdapter(list);
        popDownAreaListAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN);
        popDownAreaListAdapter.isFirstOnly(false);
        popDownAreaListAdapter.setCurrentSelect(type);
        lvDownList.setAdapter(popDownAreaListAdapter);
        //tvVersion.setText("V" + AppUtils.getVerName());
        tvVersion.setText("版本号:V" + AppUtils.getVerName());
        popDownAreaListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                type = position;
                popDownAreaListAdapter.setCurrentSelect(type);
                popDownAreaListAdapter.notifyDataSetChanged();
                tvArea.setText(list.get(position));
                titlePop.dismiss();
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        OkGo.getInstance().cancelTag(this);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (titlePop == null) {
            titlePop = new PopupWindow(popView, flArea.getWidth(), RelativeLayout.LayoutParams.MATCH_PARENT, true);
            titlePop.setAnimationStyle(R.style.PopupWindowCenterAnimation);
            titlePop.setBackgroundDrawable(new BitmapDrawable());
            titlePop.setFocusable(true);
            titlePop.setOutsideTouchable(true);
            titlePop.setOnDismissListener(new PopupWindow.OnDismissListener() {
                @Override
                public void onDismiss() {
                    if (animationDismiss == null) {
                        animationDismiss = new RotateAnimation(180f, 0f, Animation.RELATIVE_TO_SELF,
                                0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                        animationDismiss.setDuration(500);
                        animationDismiss.setFillAfter(true);
                    }
                    ivArrow.startAnimation(animationDismiss);
                }
            });
        }
    }

//    private boolean sss(String str){
//            String[] strs;
//            if (str.contains(";")) {
//                strs = str.split(";");
//            } else {
//                strs = new String[1];
//                strs[0] = str;
//            }
//            if (strs.length == 4) {
//                return true;
//            } else if (strs.length == 5) {
//                return true;
//            } else if (strs.length == 1 && str.length() > 15) {
//                if (str.substring(str.length() - 15, str.length() - 14).equals("H")) {
//                    str = str.substring(str.length() - 15, str.length() - 3);
//                    String ssss = str;
//                    return true;
//                } else if (str.substring(str.length() - 16, str.length() - 15).equals("H")) {
//                    str = str.substring(0, str.length() - 1);
//                    str = str.substring(str.length() - 15, str.length() - 3);
//                    String ssss = str;
//                    return true;
//                } else {
//                    return false;
//                }
//            } else {
//                return false;
//            }
//    }

    @OnClick({R.id.btnLogin, R.id.flArea, R.id.ivSetting})
    public void onClick(View view) {
        if (AntiShake.check(view.getId())) {    //判断是否多次点击
            ToastUtils.showFreeToast("请勿重复点击",
                    LoginActivity.this, false, Toast.LENGTH_SHORT);
            return;
        }
        switch (view.getId()) {
            case R.id.flArea:
                showTypePop();
                break;
            case R.id.ivSetting:
                IpSettingVerifyFragmentDialog ipSettingVerifyFragmentDialog = new IpSettingVerifyFragmentDialog();
                ipSettingVerifyFragmentDialog.setData("管理员密码验证", null);
                ipSettingVerifyFragmentDialog.show(getSupportFragmentManager(), "PASSWORD_VERIFY");
                break;
            case R.id.btnLogin:
//                String json  = "{\"code\":200,\"data\":\"{\\\"Materials\\\":[{\\\"MesMaterial\\\":[{\\\"Type\\\":\\\"Leadframe\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"},{\\\"Type\\\":\\\"Wafer\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"},{\\\"Type\\\":\\\"EjectorPin\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"},{\\\"Type\\\":\\\"RubberTip\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"},{\\\"Type\\\":\\\"StampingPin\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"},{\\\"Type\\\":\\\"DispenseTool\\\",\\\"Qty\\\":\\\"0\\\",\\\"id\\\":\\\"0\\\",\\\"EqpID\\\":\\\"1FD0922\\\"}]}],\\\"EqpId\\\":\\\"1FD0922\\\"}\",\"message\":\"消息通信异常!\"}";
//                String jsob = json.replace("\\","");
//                Log.e("replace",jsob);
                if (etMobile.getText().toString().trim().length() == 0) {
                    ToastUtils.showFreeToast("请输入用户名", this, false, Toast.LENGTH_SHORT);
                    return;
                }
                if (etPassword.getText().toString().trim().length() == 0) {
                    ToastUtils.showFreeToast("请输入密码", this, false, Toast.LENGTH_SHORT);
                    return;
                }
                requestLogin(etMobile.getText().toString().trim(), etPassword.getText().toString().trim(), tvArea.getText().toString());
                break;
        }
    }

    private void showTypePop() {
        if (titlePop.isShowing()) {
            titlePop.dismiss();
        } else {
            if (animation == null) {
                animation = new RotateAnimation(0f, 180f, Animation.RELATIVE_TO_SELF,
                        0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                animation.setDuration(500);
                animation.setFillAfter(true);
            }
            ivArrow.startAnimation(animation);
            AppUtils.showAsDropDown(titlePop, flArea, 0, 0);
        }
    }

    private void requestLogin(String phone, String pwd, String area) {
//        String json = "{\"code\":200,\"data\":{\"LOGINRESULT\":true,\"AREA\":\"FAB-A\",\"EQPLIST\":\"2FB0402WB1;2FB0402WB2;2FB0403DB1;2FB0403DB2;2FB0403DB3;2FB0403DB4;2FB0403WB1;2FB0403WB2;2FB0404DB1;1FB0703DB1;2FB0404DB2;1FW1039;1FW1001;999;1FW0835;1FW0819;2FB0704DB1;1FW1036;1FW1037;1FW1038;1FW1041;2FB0706DB1;2FB0704WB2;2FB0607DB1;2FB0607DB2;2FB0607WB1;2FB0607WB2;2FB0607;2FB0709DB1;2FB0709DB2;2FB0709WB1;2FB0709WB2;2FB0709;2FB0710DB1;2FB0710DB2;2FB0710WB1;2FB0710WB2;2FB0710;2FB0711DB1;2FB0711DB2;2FB0711WB1;2FB0711WB2;2FB0711;1FS202;1FW1201;1FW1203;1FW1204;1FW1205;1FW1206;1FW0724;1FW0816;2FB0602DB3;2FB0603DB1;1FW1200;2FB0703DB1;1FP02;2FS108;1FW0838;1FW0829;1FW1005;1FW0725;1FW0726;2FS123;1FP31;1FP34;1FW0817;1FW0837;2FB0604WB1;1FW1013;2FB0705WB1;2FB0201;2FB0201DB1;2FB0201DB2;2FB0201WB1;2FB0201WB2;2FB0202;2FB0202DB1;2FB1002;1FP04;1FP05;1FP06;1FP07;1FP30;1FP29;1FP28;2FS115;2FS114;2FS116;1FP32;2FS122;2FS124;1FS105;1FS104;1FS103;2FS113;2FS112;1FP33;2FS111;2FS110;2FS109;1FS102;2FS121;2FS118;1FP08;2FS119;2FS107;1FP12;1FP15;1FP16;1FP17;1FP18;1FP19;1FP20;1FP21;1FP22;1FP23;1FP24;1FP25;1FP09;1FP10;1FP11;1FB0307WB1;1FB0307WB2;1FB0308DB1;1FB0308DB2;1FB0308DB3;1FB0308WB1;1FB0308WB2;1FB0309DB1;1FB0309DB2;1FB0309DB3;1FB0309WB1;1FB0309WB2;1FB0401DB1;1FB0401DB2;1FB0401WB1;1FB0401WB2;1FB0402DB1;1FB0402DB2;1FB0402WB1;1FB0402WB2;1FB0403DB1;1FB0403DB2;1FB0403WB1;1FB0403WB2;1FB0404DB1;1FB0404DB2;1FB0404WB1;1FB0404WB2;1FB0405DB1;1FB0405DB2;1FB0405WB1;1FB0405WB2;1FB0406DB1;1FB0406DB2;1FB0406WB1;1FB0406WB2;1FB0407DB1;1FB0407DB2;1FB0407WB1;1FB0407WB2;1FB0408DB1;1FB0408DB2;1FB0408WB1;1FB0408WB2;1FB0409DB1;1FB0409DB2;1FB0409WB1;1FB0409WB2;1FB0701DB1;1FB0701DB2;1FB0701WB1;1FB0701WB2;1FB0702DB1;1FB0702DB2;1FB0702WB1;1FB0702WB2;1FB0703DB2;1FW1207;1FW1208;1FW1210;1FW1211;1FW1213;1FW1214;1FW1215;1FW1216;1FW1221;1FB0703WB1;1FB0703WB2;1FB0704DB1;1FB0704DB2;1FB0704DB3;1FB0704WB1;1FB0704WB2;1FB0705DB1;1FB0705DB2;1FB0705WB1;1FB0705WB2;1FB0706DB1;1FB0706DB2;1FB0706WB1;1FB0706WB2;1FB0707DB1;1FB0707DB2;1FB0707WB1;1FB0707WB2;1FB0708DB1;1FB0708DB2;1FB0708WB1;1FB0708WB2;1FB0709DB1;1FB0709DB2;1FB0709WB1;1FB0709WB2;2FB0401DB1;2FB0401DB2;2FB0401WB1;2FB0402DB1;2FB0402DB3;2FB0402DB4;2FB0202DB2;2FB0202WB1;2FB0202WB2;2FB0203;2FB0203DB1;2FB0203DB2;2FB0203WB1;2FB0203WB2;2FB0204;1FW0502;1FW0836;1FW0508;1FW0509;1FW0841;1FW0840;1FW0801;1FW0802;1FW0803;1FD0921;1FD0922;1FD0923;1FD0924;1FD0925;1FD0926;1FD0927;1FD1101;1FD1102;1FD1103;1FD1104;1FD1105;1FD1106;1FD1107;1FD1108;1FD1109;1FD1110;1FD1111;1FD1112;1FD1113;1FD1114;1FD1115;1FD1116;1FD1117;1FW0805;1FB0308;1FB0309;1FB0401;1FB0402;1FB0403;1FB0404;1FB0405;1FB0406;1FB0407;1FB0701;1FB0702;1FB0703;1FB0704;1FB0705;1FB0706;1FB0707;1FB0708;1FB0709;2FB0401;2FB0402;2FB0403;2FB0404;2FB0501;2FB0502;2FB0503;2FB0504;1FW0826;1FW0827;1FW0828;1FW0833;2FS1113;1FW1002;1FW1003;1FW1006;1FD1118;1FD1119;1FD1120;1FD1121;1FD1122;1FD1123;1FD1124;1FD1125;1FD1126;1FD1127;1FD1201;1FD1202;1FD1203;1FD1204;1FD1205;1FD1206;1FD1207;1FD1208;1FW1007;1FW0815;1FW0834;1FP27;2FB0506;2FB0605;2FB0606;1FB0408;1FB0409;2FB0601;2FB0602;2FB0603;2FB0604;2FB0701;2FB0702;2FB0703;2FB0704;2FB0705;2FB0706;2FB0707;2FB0708;1FW1004;1FW0723;1FW0722;1FW1024;1FB0104WB2;1FB0105DB1;1FB0105DB2;1FB0105WB1;1FB0105WB2;1FB0106DB1;1FB0106DB2;1FB0106WB1;1FB0106WB2;1FB0107DB1;1FB0107DB2;1FB0107WB1;1FB0107WB2;1FB0108DB1;1FB0108DB2;1FB0108WB1;1FB0108WB2;1FB0109DB1;1FB0109DB2;1FB0109DB3;1FB0109WB1;1FB0109WB2;1FB0201DB1;1FB0201DB2;1FB0201WB1;1FB0201WB2;1FB0202DB1;1FB0202DB2;1FB0202WB1;1FB0202WB2;1FB0203DB1;1FB0101DB1;1FB0101DB2;1FB0101WB1;1FB0101WB2;1FB0102DB1;1FB0102DB2;1FB0102WB1;1FB0102WB2;1FB0103DB1;1FB0103DB2;1FB0103WB1;1FB0103WB2;1FB0104DB1;1FB0104DB2;1FB0104WB1;1FB0203DB2;1FB0203WB1;1FB0203WB2;1FB0204DB1;1FB0204DB2;1FB0204WB1;1FB0204WB2;1FB0205DB1;1FB0205DB2;1FB0205WB1;1FB0205WB2;1FB0206DB1;1FB0206DB2;1FB0206WB1;1FB0206WB2;1FB0207DB1;1FB0207DB2;1FB0207WB1;1FB0207WB2;1FB0208DB1;1FB0208DB2;1FB0208DB3;1FB0208WB1;1FB0208WB2;1FB0209DB1;1FB0209DB2;1FB0209DB3;1FB0209WB1;1FB0209WB2;1FW1008;1FW1009;1FW1010;1FW1014;1FW1015;1FW1016;1FW1019;1FW1020;1FW1021;1FW1022;1FW1025;1FW1027;1FW1028;1FW1029;1FW1030;1FW1031;1FW1033;1FS216;1FW9100;1FS207;1FP26;1FW1017;1FW0830;1FW0810;1FW0814;1FD1209;1FD1301;1FD1302;1FD1303;1FD1304;1FD1305;1FW0806;1FW0807;1FW0808;1FW0811;1FW0812;1FW0813;1FW0821;1FW0822;1FW0823;1FW0825;1FW1217;1FW0824;1FP13;2FB0506WB1;2FB0506WB2;1FW1202;2FB0601DB1;2FB0601DB2;1FP14;1FW1026;2FB0601DB3;1FW1212;2FB0601DB4;2FB0601WB1;2FB0601WB2;2FS120;2FB0602DB1;2FB0404WB1;2FB0404WB2;2FB0501DB1;2FB0501DB2;2FB0501DB3;2FB0501DB4;2FB0501WB1;2FB0501WB2;2FB0502DB1;2FB0502DB2;2FB0502WB1;2FB0502WB2;2FB0503DB1;2FB0503DB2;2FB0503DB3;2FB0503DB4;2FB0503WB1;2FB0503WB2;2FB0504DB1;2FB0504DB2;2FB0504WB1;2FB0505DB1;2FB0505DB2;2FB0505WB1;2FB0505WB2;2FB0506DB2;2FB0506DB3;2FB0506DB4;2FS104;2FB0602DB2;2FB0602DB4;2FB0602WB1;2FB0602WB2;2FB0603DB2;2FB0603WB1;2FB0603WB2;2FB0604DB1;2FB0604DB2;2FB0604DB3;2FB0604DB4;2FB0604WB2;2FB0605DB1;2FB0605DB2;2FB0605WB1;2FB0605WB2;2FB0606DB1;2FB0606DB2;2FB0606WB1;2FB0606WB2;2FB0701DB1;2FB0701DB2;2FB0701WB1;2FB0701WB2;2FB0702DB1;2FB0702DB2;2FB0702DB3;2FB0702WB1;2FB0702WB2;2FB0703DB2;2FB0703WB1;2FB0703WB2;2FB0704DB2;2FB0704WB1;2FB0705DB1;2FB0705DB2;2FB0705WB2;2FB0706DB2;2FB0706WB1;2FB0706WB2;2FB0707DB1;2FB0707DB2;2FB0707WB1;2FB0707WB2;2FB0708DB1;1FW1011;1FW1218;2FB0505;1FW1219;1FW1220;2FB0708DB2;2FB0708DB3;2FB0708WB1;2FB0708WB2;1FB0101;1FB0102;1FB0103;1FB0104;1FB0105;1FB0106;1FB0107;1FB0108;1FB0109;1FB0201;1FB0202;1FB0203;1FB0204;1FB0205;1FB0206;1FB0207;1FB0208;1FB0209;1FB0301;1FB0302;1FB0303;1FB0304;1FB0305;1FB0306;1FB0307;1FW0740;1FW0741;1FW0742;2FB0401WB2;2FB0801;2FB0405DB1;2FB0801DB1;2FB0801DB2;2FB0801WB1;2FB0801WB2;2FB0802;2FB0802DB1;2FB0802DB2;2FB0802WB1;2FB0802WB2;2FB0803;2FB0803DB1;2FB0803DB2;2FB0803WB1;2FB0803WB2;2FB0807WB2;2FB0808;2FB0808DB1;2FB0808DB2;2FB0808WB1;2FB0808WB2;2FB0904DB2;2FB0904WB1;2FB0904WB2;2FB0905;2FB0905DB1;2FB0905DB2;2FB0905WB1;2FB0905WB2;2FB0906;2FB0906DB1;2FB0906DB2;2FB0906WB1;2FB0906WB2;2FB0907;2FB0907DB1;2FB0907DB2;2FB0907WB1;2FB0907WB2;2FB0908;2FB0908DB1;2FB0908DB2;2FB0908WB1;2FS103;2FS105;2FS106;1FW1042;1FW1043;2FB1001DB1;2FB1001DB2;2FB1001WB1;2FB1001WB2;2FB1002DB1;2FB1002DB2;2FB1002WB1;2FB1002WB2;1FD0617;1FD0618;1FD0619;1FD0620;1FD0621;1FD0622;1FD0623;1FD0624;1FD0625;1FD0626;1FD0627;1FD0901;1FD0902;1FD0903;1FD0904;1FD0905;1FD0906;1FD0907;1FD0908;1FD0909;1FD0910;1FD0911;1FD0912;1FD0913;1FD0914;1FD0915;1FD0916;1FD0917;1FD0918;1FD0919;1FD0920;1FD0501;1FD0502;1FD0503;1FD0504;1FD0505;1FD0506;1FD0507;1FD0508;1FD0509;1FD0510;1FD0511;1FD0512;1FD0513;1FD0515;1FD0516;1FD0517;1FD0518;1FD0519;1FD0520;1FD0521;1FD0522;1FD0523;1FD0524;1FD0525;1FD0526;1FD0527;1FD0601;1FD0602;1FD0603;1FD0604;1FD0605;1FD0606;1FD0607;1FD0608;1FD0609;1FD0610;1FD0611;1FD0612;1FD0613;1FD0614;1FD0615;1FD0616;2FB0908WB2;1FW0831;1FW0809;1FW1034;1FW1222;1FW1223;1FS101;1FB0108DB3;1FP03;1FP01;1FP35;2FB1001;2FB1003DB1;2FB1003DB2;2FB1003WB1;2FB1003WB2;2FB1004DB1;2FB1004DB2;2FB1004WB1;2FB1004WB2;2FB1005DB1;2FB1005DB2;2FB1005WB1;2FB1005WB2;2FB1006DB1;2FB1006DB2;2FB1006WB1;2FB1006WB2;2FB1007DB1;2FB1007DB2;2FB1007WB1;2FB1007WB2;2FB1008DB1;2FB1008DB2;2FB1008WB1;2FB1008WB2;2FB1009DB1;2FB1009DB2;2FB1009WB1;2FB1009WB2;2FB1010DB1;2FB1010DB2;2FB1010WB1;2FB1010WB2;2FB1011DB1;2FB1011DB2;2FB1011WB1;2FB1011WB2;2FS117;2FS101;2FS102;1FB0301DB1;1FB0301DB2;1FB0306DB2;1FB0306WB1;1FB0306WB2;1FB0307DB1;1FB0301WB1;1FB0301WB2;1FB0302DB1;1FB0302DB2;1FB0302WB1;1FB0302WB2;1FB0303DB1;1FB0303DB2;1FB0303WB1;1FB0303WB2;1FB0304DB1;1FB0304DB2;1FB0304WB1;1FB0304WB2;1FB0305DB1;1FB0305DB2;1FB0305WB1;1FB0305WB2;1FB0306DB1;1FB0307DB2;2FB0405WB1;2FB0504WB2;2FB0506DB1;2FB0901;2FB0901DB1;2FB0901DB2;2FB0901WB1;2FB0901WB2;2FB0902;2FB0902DB1;2FB0902DB2;2FB0902WB1;2FB0902WB2;2FB0903;2FB0903DB1;2FB0903DB2;2FB0903WB1;1FW1032;1FW1040;1FW1018;1FW1035;1FW0804;1FW0832;1FW0839;1FW1044;2FB0405;2FB0402DB2;1FW1209;2FB0204DB1;2FB0204DB2;2FB0204WB1;2FB0204WB2;2FB0301;2FB0301DB1;2FB0301DB2;2FB0301WB1;2FB0301WB2;2FB0302;2FB0302DB1;2FB0302DB2;2FB0303;2FB0302WB1;2FB0302WB2;2FB0303DB1;2FB0303DB2;2FB0303WB1;2FB0303WB2;2FB0304;2FB0304DB1;2FB0304DB2;2FB0304WB1;2FB0304WB2;Test;2FB0804;2FB0804DB1;2FB0804DB2;2FB0804WB1;2FB0804WB2;2FB0805;2FB0805DB1;2FB0805DB2;2FB0805WB1;2FB0805WB2;2FB0806;2FB0806DB1;2FB0806DB2;2FB0806WB1;2FB0806WB2;2FB0807;2FB0807DB1;2FB0807DB2;2FB0807WB1;2FB0903WB2;2FB0904;2FB0904DB1;1FW0818;1FW0701;1FW0702;1FW0703;1FW0704;1FW0705;1FW0706;1FW0707;1FW0708;1FW0709;1FW0710;1FW0711;1FW0712;1FW0713;1FW0714;1FW0715;1FW0716;1FW0717;1FW0718;1FW0719;1FW0720;1FW0721;2FB0405DB2;2FB0405WB2;1FW0727;1FW0728;1FW0729;1FW0730;1FW0731;1FW0732;1FW0733;1FW0734;1FW0735;1FW0736;1FW0737;1FW0738;1FW0739;\",\"PASSWORD\":\"aps211\",\"USERNAME\":\"aps211\",\"ROLENAME\":\"Administrator\",\"ISACTIVE\":true,\"FEATURESCODE\":\"F0,I0,F1,I1,F2,I2,F3,F5,\"},\"message\":\"消息通信异常\"}\n";
//        BaseEntity<LoginEntity> entity = new Gson().fromJson(json, new TypeToken<BaseEntity<LoginEntity>>() {}.getType());
//        LoginEntity loginEntity = entity.getData();
//        if (loginEntity.getLOGINRESULT()) {
//            if (loginEntity.getISACTIVE()) {
//                StaticMembers.CUR_USER = loginEntity;
//                ToastUtils.showFreeToast("登陆成功",
//                        LoginActivity.this, true, Toast.LENGTH_SHORT);
//                startActivity(new Intent(LoginActivity.this, HomeActivity.class));
//                LoginActivity.this.finish();
//            } else {
//                ToastUtils.showFreeToast(loginEntity.getMESSAGE(),
//                        LoginActivity.this, true, Toast.LENGTH_SHORT);
//            }
//        }
        EntityCallBack<BaseEntity<LoginEntity>> callBack = new DialogEntityCallBack<BaseEntity<LoginEntity>>
                (new TypeToken<BaseEntity<LoginEntity>>() {
                }.getType(), getSupportFragmentManager(), TAG_USER_LOGIN) {

            @Override
            public void onSuccess
                    (final Response<BaseEntity<LoginEntity>> response) {
                if (response.body().isSuccess(LoginActivity.this)) {
                    LoginEntity loginEntity = response.body().getData();
                    if (loginEntity.getLOGINRESULT()) {
                        if (loginEntity.getISACTIVE()) {
                            StaticMembers.CUR_USER = loginEntity;
                            ToastUtils.showFreeToast("登陆成功",
                                    LoginActivity.this, true, Toast.LENGTH_SHORT);
                            startActivity(new Intent(LoginActivity.this, HomeActivity.class));
                            LoginActivity.this.finish();
                        } else {
                            ToastUtils.showFreeToast(loginEntity.getMESSAGE(),
                                    LoginActivity.this, false, Toast.LENGTH_SHORT);
                        }
                    } else {
                        ToastUtils.showFreeToast(loginEntity.getMESSAGE(),
                                LoginActivity.this, false, Toast.LENGTH_SHORT);
                    }
                } else {
                    loadFail(response.body().getMessage());
                }
            }

            @Override
            public void onError
                    (Response<BaseEntity<LoginEntity>> response) {
                super.onError(response);
                loadError(response.getException(), "ClientLogin");
            }
        };

        Map<String, String> map = new HashMap<>();
        map.put("USERNAME", phone);
        map.put("PASSWORD", pwd);
        map.put("AREA", area);
        map.put("LOGINTYPE", "LOGIN");
        NetUtils.requestNet(TAG_USER_LOGIN, "/ClientLogin", map, callBack);
    }


    @Override
    protected void onResume() {
        super.onResume();
        if (dialog == null) {
            requestUpdate();
        }
    }

    private void requestUpdate() {
        EntityCallBack<BaseEntity<VersionEntity>> callBack = new EntityCallBack<BaseEntity<VersionEntity>>
                (new TypeToken<BaseEntity<VersionEntity>>() {
                }.getType()) {

            @Override
            public void onSuccess
                    (Response<BaseEntity<VersionEntity>> response) {
                if (response.body().isSuccess(LoginActivity.this)) {
                    dialog = new DownloadFragmentDialog();
                    dialog.setData(response.body().getData());
                    dialog.show(getSupportFragmentManager(), "dialog_down_new");
                }
            }

            @Override
            public void onError
                    (Response<BaseEntity<VersionEntity>> response) {
                super.onError(response);
                AppUtils.saveErrorMessages(response.getException(), "UpGradeApp");
            }
        };

        Map<String, String> map = new HashMap<>();
        map.put("version", String.valueOf(StaticMembers.VERSION_CODE));
        NetUtils.requestNet(this, "/UpGradeApp", map, callBack);
    }
}
